/*
 * @Author: wwxin
 * @Date: 2024-04-09 13:48:54
 * @LastEditors: wwxin
 * @LastEditTime: 2024-05-06 15:20:46
 * @FilePath: /admin/vue.config.js
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */

const path = require("path");
// 传入相对路径，返回绝对路径
function resolve(dir) {
  return path.join(__dirname, dir);
}

module.exports = {
  //路径前缀
  // publicPath: process.env.NODE_ENV === "production" ? "/user/" : "/",
  publicPath: "/",
  lintOnSave: true,
  productionSourceMap: false,
  chainWebpack: (config) => {
    //忽略的打包文件
    config.externals({
      vue: "Vue",
      "vue-router": "VueRouter",
      vuex: "Vuex",
      axios: "axios",
      "element-ui": "ELEMENT",
    });
    const entry = config.entry("app");
    entry.add("babel-polyfill").end();
    entry.add("classlist-polyfill").end();
    entry.add("@/mock").end();

    config.module.rule("svg").exclude.add(resolve("src/icons")).end();

    config.module
      .rule("icons")
      .test(/\.svg$/)
      .include.add(resolve("src/icons"))
      .end()
      .use("svg-sprite-loader")
      // 具体的loader
      .loader("svg-sprite-loader")
      .options({
        symbolId: "icon-[name]",
      })
      .end();
  },
  css: {
    extract: { ignoreOrder: true },
  },
  //开发模式反向代理配置，生产模式请使用Nginx部署并配置反向代理
  devServer: {
    host: "0.0.0.0",
    port: 7788,
    hot: true, //热更新自动刷新
    proxy: {
      "/api": {
        target: "https://api.mszcdf.cn",
        changeOrigin: true, // 使 Origin 请求头中的主机名变为目标 URL 的主机名
        ws: true,
        pathRewrite: {
          // 重写路径
          "^/api": "/", //将请求地址中的api替换为空
        },
      },
    },
  },
};
